'KAN ANVÄNDAS SÅ HÄR:
ConvertLinks(radbryt(HTMLTecken( Variabel_med_text )))
'FUNKTIONERNA:
Function HTMLTecken(txtString)
txtString = Server.HTMLEncode(Trim(txtString))
txtString = SMILETecken(txtString)
HTMLTecken = txtString
End Function
Function Radbryt(rfix)
rfix = "
" & Replace(rfix, vbCrLf, "
") & "
"
Radbryt = rfix
End Function
Function SMILETecken(txtString)
txtString = Replace(txtString, ":-)", "")
txtString = Replace(txtString, ";-)", "")
txtString = Replace(txtString, "B-)", "")
txtString = Replace(txtString, ":-D", "")
txtString = Replace(txtString, ":b)", "")
txtString = Replace(txtString, "B~>", "")
txtString = Replace(txtString, "X/>", "")
txtString = Replace(txtString, ":>)", "")
txtString = Replace(txtString, ":P", "")
txtString = Replace(txtString, ">:D", "")
txtString = Replace(txtString, ":-p", "")
txtString = Replace(txtString, "(c:", "")
txtString = Replace(txtString, ":-!", "")
txtString = Replace(txtString, ":-?", "")
txtString = Replace(txtString, ":-/", "")
txtString = Replace(txtString, ":-o", "")
txtString = Replace(txtString, ":-O", "")
txtString = Replace(txtString, ":>B", "")
txtString = Replace(txtString, ":-(", "")
txtString = Replace(txtString, ":(", "")
txtString = Replace(txtString, "X-b", "")
txtString = Replace(txtString, "8-C", "")
SMILETecken = txtString
End Function
'----------------------------------------------------
' * ConvertLinks *
' Fixa så att länkar blir länkade i HTML-koden.
' Det mesta av koden kommer från www.ojmnet.com
' Kan göras med färre rader om man använder RegExp,
' men lazy bastards ändrar inte old stuff som funkar :-)
'----------------------------------------------------
Function ConvertLinks(svalue)
svalue = ConvertLinksHREF(svalue, "http://")
svalue = ConvertLinksHREF(svalue, "ftp://")
svalue = ConvertLinksHREF(svalue, "news://")
svalue = ConvertLinksHREF(svalue, "mailto:")
ConvertLinks = svalue
End Function
Function ConvertLinksHREF(svalue, sHREF)
Dim iPos1, iPos2, sTemp, sTemp1, sTemp2
iPos2 = 1
iPos1 = InStr(1, svalue, sHREF, 1)
Do While iPos1 > 0
iPos2 = FindLinkEnd(svalue, iPos1 + Len(sHREF))
If iPos2 > 0 Then
sTemp1 = Mid(svalue, iPos1, iPos2 - iPos1)
sTemp2 = "" & sTemp1 & ""
svalue = Left(svalue, iPos1 - 1) & sTemp2 & Mid(svalue, iPos2)
iPos2 = iPos1 + Len(sTemp2) + 1
Else
iPos2 = iPos1 + Len(sHREF)
End If
iPos1 = InStr(iPos2, svalue, sHREF, 1)
Loop
ConvertLinksHREF = svalue
End Function
Function FindLinkEnd(svalue, iPos1)
Dim iPos2, i, iLen, iTempPos
Dim sValidChars
sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-.,@/+?_=~#&;%:"
iLen = iPos1 + Len(Mid(svalue, iPos1)) - 1
iPos2 = -1
For i = iPos1 To iLen
iTempPos = InStr(1, sValidChars, Mid(svalue, i, 1), 1)
If iTempPos = 0 Then
If i < iPos1 + 4 Then
iPos2 = -1
Else
iPos2 = i
End If
Exit For
End If
Next
If iPos2 = 0 Then
iPos2 = Len(svalue) + 1
End If
FindLinkEnd = iPos2
End Function